package xyz.fuqufyb.aec.dao;

import org.apache.ibatis.annotations.Param;
import xyz.fuqufyb.aec.entity.Menu;

import java.util.List;
import java.util.Map;

public interface MenuMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Menu record);

    int insertSelective(Menu record);

    Menu selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Menu record);

    int updateByPrimaryKey(Menu record);


    List<Menu> getMenuTree(@Param("userId") Integer userId);

    /**
     * 查询出所有的子节点
     * @param userId
     * @return
     */

    List<Integer> getMenuTreeIds(@Param("userId") Integer userId);

    /**
     * 查询有多个子节点的所有父级数据(递归，数据量大，肯定影响性能)
     * @param menuIds
     * @return
     */
    List<Menu> getMenuTeeNodeByMenuIds(@Param("menuIds") List<Integer> menuIds);


    List<Menu> getMenuTreeList();


    List<Integer> getParentId(@Param("parentId") Integer parentId);

    List<Menu> getMenuList(Map<String, Object> maps);

    List<Menu> getMenuListUserId(@Param("userId") Integer userId);

    List<Integer> getMenuListRole(@Param("roleId") Integer roleId);

    List<Integer> getMsqlDelMenuIds(@Param("ids") List<Integer> ids);

    int deleteMenuIds(@Param("ids") List<Integer> ids);


}